package com.itheima.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import java.util.Date;

@Controller
/**
 * 使用@Controller注解的类称为处理器
 */
@RequestMapping("/user")
/**
 * @RequestMapping: 请求映射路径
 * 位置：可以用在类和方法上
 * 标记在类上,可以防止在多个控制器内会有重复的方法路径,分模块管理，限定类中方法访问的前缀。
 */
public class UserController {

    /**
     前端请求方式：Get请求，Post请求
     通过RequestMapping的method属性可以限定请求方式为Get请求和POST请求
     Get请求：@RequestMapping(value = "/sayGet",method = RequestMethod.GET)
     Post请求：@RequestMapping(value = "/sayPost",method = RequestMethod.POST)

     @PostMapping 等同于RequestMapping注解的post请求方式
     @GetMapping 等同于RequestMapping注解的get请求方式
     */
    @RequestMapping(value = "/sayHello", method = RequestMethod.POST)
    //@PostMapping("/sayHello")

    //@RequestMapping("/sayHello")
    public ModelAndView sayHello(ModelAndView modelAndView) {
        /**
         * 设置模型数据
         * 相当于servlet中的request.setAttribute,数据放入请求域
         *
         * 处理器里面可以有多个使用@RequestMapping注解的方法,每个方法映射为一个HTTP接口
         * modelAndView是spring提供的数据视图对象,用于为指定视图（jsp页面）以及提供数据
         */
        modelAndView.addObject("nowDate", new Date());
        modelAndView.addObject("msg", "hello");
        /**
         * 设置视图（真实路径）
         * xml里配置视图解析器(InternalResourceViewResolver)后,不需要写全路径
         */
        modelAndView.setViewName("message");
        return modelAndView;
    }
}
